Em muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
Xin giu`p đỡ về timer và ngắt
Collapse
X
-
như vậy là bộ đếm của bạn lớn nhất là 255Nguyên văn bởi sdtuan Xem bài viếtEm muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
bạn có thể nạp vào tl0 như sau
mov th0,#ffh
mov TL0,-p0
-
sory mình nhầm
bạn viết như sau
.............
.................
....................
.................
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
công việc
mov r0,p0
kt:
ret
Comment
-
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
Đây là phần khởi tạo ngắt. Có nghĩa là cứ sau 1ms thì 1 ngắt timer sẽ dc kich hoạt.
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
;công việc
mov r0,p0
kt:
ret
Đây là chương trình phục vụ ngắt timer0.Sau khi ngắt dc kich hoạt thì chương trình phục vụ ngắt dc thực hiện.Chương trình này sẽ giảm r0 và so sánh với 0(tức là 255) nếu khác thì sẽ nhảy đến kt và trở lại chương trình chính, công việc này tiếp tục đến khi nào r0=0 va như vậy thì sẽ delay =r0*1ms .Khi r0=0 thì nó sẽ cập nhập giá trị của P0.
Comment
-
LJMP MAIN
ORG 000BH
LJMP NGAT_T0
MAIN:
MOV TMOD,#11H
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
MOV R0,P0
SETB EA
SETB ET0
SETB TR0
NGAT_T0:
DEC R0
CJNE R0,#255,KT
MOV R0,P0
****** CONG VIEC*****
MOV R0,P0
RETI
kt:
vây nhãn kt mình có phải làm ji để nó way lại chương trình chính
Comment
-
em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
Comment
-
nó tương đương với lệnhNguyên văn bởi dung h Xem bài viếtem chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV Tl0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
MOV TH0,#HIGH(65536-1000)
MOV TL0,#LOW(65536-1000)
tức là nạp vào timer giá trị = 65536 - 1000 (= 1ms)
byte cao đưa vào TH0 byte thấp đưa vào TL0
Comment
-
í, cái này trong giáo trình có giải thích mà.
nói nôm na như vầy nhé, giả sử cài TIMER là 8bit, nó sẽ đếm từ 0->255, vậy bạn muốn delay 10uS thì làm sao, bạn cài cho TIMER giá trị ban đầu là 245, vậy sao 10uS nó sẽ tràn về 0. giá trị 245 ~ (-10) đó (8bit). người ta dùng giá trị âm cho dễ nhớ hơn.
Comment
-
Khi dùng timer ở chế độ 16 bít, bạn phải nạp giá trị đầu cho timer vào 2 thanh ghi là TH và TL. Trong chế độ 16 bít, thì giá trị đếm tối đa có thể lên đến 65536, tức là giá trị 16bit = 2 byte. Đưa byte cao vào TH, byte thấp vào TL.em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờFor a better world
Comment
-
mình xin bổ xung thêm nhé, nếu nói đến timer để delay thì bạn cần đề cập thêm giá trị của thạch anh, nó góp phần vào định thời, nếu bạn xài thạch anh 11.0592 MHz thì giá trị khác, nếu xài 12MHz thì khác.hãy cố gắng dù vướn phải thất bại!!!!!!!!
Comment
dự án của bạn Tra theo mã, xem datasheet và đặt hàng trực tuyến. MicrochipROHMEpsonTaejin
Đặt hàng & tư vấn
Hà Nội024.3640 8561
TP.HCM028.3811 9870
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi nhathung1101Còn sống không lão??? Mất một thời gian chữa bệnh nên quên hỏi thăm.......
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 03:09 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi nhathung1101Thời buổi năng lượng xanh, nhất là xanh cả mặt... Thì Điện mặt giời, điện gió, sẽ lên ngôi.
Nếu không nắm bắt được cái cơ bản đó thì đi làm coder à? Mà coder giờ thất nghiệp cả lũ vì AI rồi!!!









...
-
Channel: Điện tử công suất
Hôm qua, 03:03 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi quangdonguehChà, lâu lắm rồi nhưng diễn đàn vẫn còn những chủ đề cốt lõi của điện tử công suất...-
Channel: Điện tử công suất
24-10-2026, 07:53 -
-
bởi bqvietNếu muốn tăng công suất cần tăng con chip và tăng biến áp lên lớn hơn. Thiết kế ban đầu dùng TNY25x và biến áp EE16 hoặc EE13. Tăng con chip lên TNY268 vẫn mạch nguyên lý đó và biến áp lên EE19 sẽ nâng công suất ra thêm nhiều. Tăng tối đa...-
Channel: Điện tử công suất
24-10-2026, 02:14 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 14:33 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 10:49 -
-
Trả lời cho Tìm VR 5 chânbởi dinhthuong80Cảm ơn bác bqviet . Nhưng hình như các VR 5 chân của linhkienchatluong là loại có 2 chân là công tắc đóng mở. Thấy trên Shopee có chỗ bán linh kiện đàn Organ, mà không biết đúng loại không, với lại sao ... mắc dữ dội luôn ấy!!!
...-
Channel: Hướng dẫn tìm thông tin linh kiện
19-10-2026, 11:30 -
-
Trả lời cho Tìm VR 5 chânbởi bqvietTrang sản phẩm này có loại 5 chân và 8 chân
https://linhkienchatluong.vn/chiet-a...doi_s1595.aspx
Ngoài ra một trang cùng cấp với nó có loại 6 chân nữa, chắc đủ cho người muốn tìm....-
Channel: Hướng dẫn tìm thông tin linh kiện
17-10-2026, 17:19 -
-
bởi dinhthuong80Chào cả nhà, chúc cuối tuần vui vẻ!
Hôm nay mình lên đây nhờ ai biết chỉ dùm biến trở 5 chân này tên gọi là gì, có thể mua ở đâu vậy? Xin cám ơn nhiều! ...-
Channel: Hướng dẫn tìm thông tin linh kiện
-
Comment